(define (swapper s1 s2 slist)
    (if (null? slist)
        `()
        (cond 
            ((eqv? (car slist) s1) 
                (cons
                    s2
                    (swapper s1 s2 (cdr slist))
                )
            )
            ((eqv? (car slist) s2) 
                (cons
                    s1
                    (swapper s1 s2 (cdr slist))
                )
            )
            (else
                (cons
                    (car slist)
                    (swapper s1 s2 (cdr slist))
                )
            )
        )
    )
)

(display
    (swapper `a `d `(a b c d))
)
